/**
 * @author: 團長
 * @date: 2013-9-17-上午9:35:05
 */
package net.loyintean.pearlshell.basedb;

import java.util.List;

import net.loyintean.pearlshell.base.model.IResult;
import net.loyintean.pearlshell.basedb.dto.BaseDto;
import net.loyintean.pearlshell.basedb.exception.TransactionException;

/**
 * 执行数据库批量操作的数据库服务类。
 * 
 * @author 團長
 * @since 2013-9-17
 * @version 1.0.0
 */
public interface IBatchDBService<T extends BaseDto> {

	/**
	 * 批量插入数据。批量策略是"all or nothing"。全部正确更新，或者全部不更新。
	 * 
	 * @author 團長
	 * @since 2013-9-17
	 * @param dtoList
	 *            待插入的数据列表
	 * @return 执行结果。其中包含的数据是成功操作的数据量。
	 * @throws TransactionException
	 *             当数据库操作发生异常时，将抛出此异常。此异常将导致事务回滚，从而使得整个批量更新失败。
	 */
	public IResult<Integer> editDtoList(List<T> dtoList)
			throws TransactionException;

}
